package com.atguigu.lease.common.mybatisplus;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * projectName: com.atguigu.lease.common.mybatisplus
 *
 * @author: 赵伟风
 * description:
 *
 * 利用mybatis-plus完成数据的自动填充功能
 *    步骤1: 实体类的属性添加触发填充的时机  @TableField(fill = type.insert | update)
 *    步骤2: 自定义填充实现接口
 */

@Component
public class MybatisMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject,"createTime", Date.class,new Date());
        this.strictInsertFill(metaObject,"isDeleted", Byte.class,(byte)0);
        //保存数据的时候,会触发这个方法,然后完成填充
        //this.strictInsertFill(metaObject, "属性名", 属性值类型.class, 填充的值); // 起始版本 3.3.0(推荐使用)
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        //更新数据的时候触发这个方法,然后完成更新
        this.strictUpdateFill(metaObject,"updateTime", Date.class,new Date());
    }
}
